Printed circuit board (“PCB”) designs can be created and/or edited employing electronic design automation software (“EDA”) such as ALTIUM DESIGNER®, CADSOFT EAGLE PCB®, or KICAD. PCB designs are typically stored as digital files residing on a storage medium of a computer (for example, a hard drive). EDA software can also translate PCB design data to industry-standard digital formats, most commonly in RS-274X Gerber format accompanied by Excellon formatted files for drilling-related data. A PCB design may be described by a collection of such files, and such a collection is typically referred to as the “Gerbers” or “the Gerber files” for that design. RS-274X Gerber and Excellon format files are well defined, documented and standardized.
Some EDA software may also allow the user to export additional data, such as the components included in the bill of materials of the finished design (“BOM”), and the coordinate and orientation data required to physically place electronic components on a PCB (variously referred to as “XYRS” (XY Rotation and Side), “Centroid” and “Pick And Place” files). Unlike RS-274X and Excellon files, there is no standardization or canonical definition of BOM and XYRS files.
When a customer wishes to have a PCB created by a PCB fabricator, or to purchase PCB assembly (i.e., the placement and fixation of electronic components upon a PCB) services (“PCBA”), the customer need not physically transport various files to a PCB fabricator or PCBA vendor and instead can electronically transmit the files to an “online” vendor using a computer network such as the Internet. For example, the customer can use an Internet browser program (referred to herein as the “user-agent”) such as INTERNET EXPLORER® or MOZILLA FIREFOX®. The customer can direct the user-agent to an Internet-connected server associated with the vendor and upload the design data to that server. The vendor can take the design data and create PCBs and/or assemble components upon finished PCBs. In some cases, customers may use a delivery service such as the UNITED STATES POSTAL SERVICE to deliver previously finished PCBs to a PCBA vendor for assembly services.
In recent years, there has been a tremendous proliferation of computers connected to a global network known as the Internet. The Internet provides a transport mechanism through standardized communication protocols, such as the Hypertext Transport Protocol (HTTP), for communicating web content in the form of text, graphics, sounds, animations, video, and computer executable code.
An internet browser is a client application or operating system utility that communicates with server computers via FTP, HTTP, and Gopher protocols. Examples of popular web browsers include INTERNET EXPLORER®, by Microsoft Corporation, of Redmond, Wash., and FIREFOX™, by Mozilla Corporation, of Mountain View, Calif. Web browsers conventionally receive electronic documents from the network and present them to a user. In addition to being able to display text, web browsers are also typically able to display graphics and other multimedia content (e.g., video, audio, vector graphics, and vector graphic animations). Electronic documents may include text documents, conventional markup documents (e.g. HTML, XML, and others), graphics and other multimedia content, data files, and code that can be executed or interpreted by the web browser or other system components.
In addition to data and metadata, HTML documents can contain embedded software components containing program code that perform a wide variety of operations. These software components expand the interactive ability of an HTML document's user interface. JAVASCRIPT™ scripts are examples of software components that are embedded in HTML documents. A browser executes such software components as it reaches the position in the script during interpretation of the HTML document. Scripts loaded during interpretation of the document may modify the document if the browser supports dynamic HTML (DHTML). Scripts may respond to user activity (pointer events or keyboard events), may post data to the server, and may request and receive data from the server. In recent years, Graphical User Interfaces (GUIs) have been implemented inside of web browsers using software embedded in electronic documents and transmitted from server to client over the Internet. Such mechanisms can, for example, use JAVASCRIPT and DHTML capabilities, and are well understood by those skilled in the art.
XYRS files may reference data variously known as “footprint,” “land pattern” or “component” data and generally may specify where the centroid of a land pattern may be placed. Footprint data describes, at the least, the geometry and physical center of an electronic component. Footprint data may be derived from a variety of sources. In some cases, footprint data may be created by the electronic component vendor, the user of the EDA software, or the creator of the EDA software. In some cases, footprint data may be derived from other users, for example, via electronic communities, file-sharing sites, or other “crowdsourcing” methods.
PCBA vendors also use footprint data in their production processes. This data may be created by the PCBA vendor, or by the manufacturer of the PCBA production equipment, or purchased from a specialized data provider, or a combination of all three. It is not unlikely that a PCBA vendor's footprint data will not match a customer's footprint data for a given component.
XYRS data does not include component geometry, aside from the physical center of an electronic component which may be derived from land pattern data from EDA software.
As described above, PCB design files can be uploaded to an online PCBA service. However, the XYRS files are often faulty. Files may be faulty due to the non-standardized nature of XYRS files, or they may incorporate footprint data that, while it may be suitable for certain purposes, is defective for others. For example, footprints with incorrect physical center data will allow for the successful fabrication of PCBs, but not for the successful assembly of the same PCB. In some cases, EDA software does not support creation of an XYRS file. As described above, the footprint data employed by the vendor may differ from that being employed by the user. Unfortunately, the lack of common XYRS files, the lack of a generally accepted file formats, the differences between user and vendor footprint data, and the high defect rates associated with XYRS data often requires PCBA vendors to manually create, or re-create, XYRS data from the PCB itself (a process called “footprinting” or “teach-in”). For most PCBA vendors, the lack of reliable XYRS data is so common that manual footprinting is an established routine, and user XYRS data is either discarded or not accepted.
As described above, PCB design files can be uploaded to an online PCBA service. Again, as with the XYRS files, BOM files are often faulty. Files may be faulty due to the non-standardized nature of BOM files, or in the case of customers providing their own components to a PCBA vendor, the actual components may not match the information in the BOM file.
From the perspective of the PCBA vendor, this lack of predictably reliable XYRS and BOM data is not desirable. Predictably reliable XYRS data would allow a vendor to greatly automate the assembly process, improving profitability and delivery times, but the issues with XYRS data, as described above, means that most vendors find it more efficient to perform manual footprinting. Footprinting is performed on the same equipment that is more profitably used for actual PCBA production, and due to the manual nature of footprinting, may introduce production errors. Unreliable BOM data also increases the potential for errors, and increases support costs for the vendor.
From the perspective of the PCBA service customer, this lack of reliable XYRS and BOM data increases their costs and lead-time to receive finished product, and increases the likelihood of errors. Additionally, it may also increase their labor costs, as faulty data may be returned to the customer by the PCBA vendor for review and correction.
The present inventors have recognized that it would be advantageous to provide users with a way to order PCBA services that disallows the possibility of submitting faulty XYRS and BOM data. What is desired is a system that provides the tools and features required for a user to both upload their PCB design data, and to verify and/or input XYRS and BOM data visually. In addition, the system should allow users to associate components in the users' BOM with verified footprint data from a single source, and use the same footprint data for visual verification or creation of XYRS data.